package com.fstrat.backend.entities;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.fstrat.backend.enums.StatusEnum;

@Entity
@Table(name = "Anfrage")
public class Anfrage implements IEntity<Long>, Serializable {
	private static final long serialVersionUID = 6834304244111245249L;
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique = true, nullable = false, precision = 10)
	private Long id;
	@Column(nullable = false)
	private Double preis;
	@Temporal(TemporalType.DATE)
	@Column(nullable = false)
	private Date ausleihbeginnDatum;
	@Temporal(TemporalType.DATE)
	@Column(nullable = false)
	private Date ausleihendeDatum;
	@Column(nullable = false)
	private StatusEnum status;
	@Column
	private String kommentar;
	@ManyToOne
    @JoinColumn(name = "Angebot_ID", nullable = false)
	private Angebot angebot;
	@ManyToOne
    @JoinColumn(name = "User_ID", nullable = false)
	private User nachfrager;
	
	@Override
	public Long getId() {
		return id;
	}

	public Double getPreis() {
		return preis;
	}

	public void setPreis(Double preis) {
		this.preis = preis;
	}

	public Date getAusleihbeginnDatum() {
		return ausleihbeginnDatum;
	}

	public void setAusleihbeginnDatum(Date ausleihbeginnDatum) {
		this.ausleihbeginnDatum = ausleihbeginnDatum;
	}

	public Date getAusleihendeDatum() {
		return ausleihendeDatum;
	}

	public void setAusleihendeDatum(Date ausleihendeDatum) {
		this.ausleihendeDatum = ausleihendeDatum;
	}

	public StatusEnum getStatus() {
		return status;
	}

	public void setStatus(StatusEnum status) {
		this.status = status;
	}

	public String getKommentar() {
		return kommentar;
	}

	public void setKommentar(String kommentar) {
		this.kommentar = kommentar;
	}

	public Angebot getAngebot() {
		return angebot;
	}

	public void setAngebot(Angebot angebot) {
		this.angebot = angebot;
	}

	public User getNachfrager() {
		return nachfrager;
	}

	public void setNachfrager(User nachfrager) {
		this.nachfrager = nachfrager;
	}

}
